<?php

class Utils {

    /**
     * Convierte array a string
     *
     * @param array $arr
     */
    public static function arrToStr($arr = array(),$name='Array') {
        $st = "$name{ ";
        foreach ($arr as $k => $v) {
            $st .= "$k=>$v, ";
        }
        return $st . "}";
    }

    /**
     * Formatear fecha
     *
     * @param type $fecha
     * @param type $hora
     * @return string Fecha formateada
     */
    public static function formatearFecha($fecha = "", $hora = "",
            $format = "d-m-Y H:i") {
        return date($format, strtotime($fecha . ' ' . $hora));
    }

    /**
     * Controlar la salida del error_log de forma genérica
     *
     * @param string $string
     *        String a pintar
     * @param int $out
     *        Número que indica la salida [0:default]
     * @param string $env
     *        Entorno
     */
    public static function err($string = "", $out = 0, $env = 'local') {
        if (app()->env == $env) {
            error_log($string, $out);
        }
    }

    /**
     * Devuelve una alternativa si el valor es nulo.
     *
     * @param string $value
     *        valor a comparar para saber si es nulo.
     * @param string $default
     *        valor a devolver si el primero es nulo.
     * @return Devuelve el valor pasado en el primer parámetro si no es nulo,
     *         es caso contrario devuelve el valor por defecto.
     *
     */
    public static function nvl($value, $default = "") {
        return isset($value) ? $value : $default;
    }

    /**
     * Devuelve el código del lenguaje configurado para la sesión.
     *
     * @return el código del lenguaje configurado para la sesión.
     *
     */
    public static function getLanguage() {
        return App::getLocale();
    }

    /**
     * Devuelve la palabra en el idioma de la sesión con la primera letra en mayúscula.
     *
     * @param string $value
     *        Valor de la clave en el fichero de idiomas del fichero global.
     * @return string Devuelve el texto en el idioma de la sesión con la primera letra en mayúscula indicado en el fichero global.
     */
    public static function __u($value) {
        return ucfirst(trans("global.$value"));
    }

    /**
     * Devuelve la palabra en el idioma de la sesión.
     *
     * @param string $value
     *        Valor de la clave en el fichero de idiomas del fichero global.
     * @return string Devuelve el texto en el idioma de la sesión indicado en el fichero global.
     */
    public static function __($value) {
        return trans("global.$value");
    }

}
